/**
 * 管理后台系统的http请求处理逻辑
 */
'use strict';

const BaseInit = require('../../libs/base/BaseInit');
const Gateway = require('./Gateway');

/**
 * Gateway进程初始化
 */
class GatewayInit extends BaseInit {
    /**
     * 构造函数
     */
    constructor() {
        super('Gateway');
    }

    /**
     * 创建服务实例
     */
    async createService() {
        await this.createOneService('Gateway', Gateway);
    }
}

// 监听未捕获的异常
process.on('uncaughtException', (err) => {
    console.error('[Gateway] 未捕获的异常:', err);
});

// 监听未处理的Promise拒绝
process.on('unhandledRejection', (reason, promise) => {
    console.error('[Gateway] 未处理的Promise拒绝:', reason);
});

// 创建并初始化Main服务
const gatewayInit = new GatewayInit();

// 启动初始化流程
gatewayInit.init().catch(error => {
    console.error('[Gateway] 初始化失败:', error);
    process.exit(1);
});

// 监听进程信号
process.on('SIGINT', () => gatewayInit.handleExit());
process.on('SIGTERM', () => gatewayInit.handleExit()); 